package controle;

import presentation.PCarte;
import presentation.PTasDeCartes;
import solitaire.application.Carte;
import solitaire.application.Tas;
import solitaire.application.TasDeCartes;

/**
 * controleur de tas de cartes
 * @author Guillaume Benitez, Kevin Lemaux
 *
 */
public class CTasDeCartes extends TasDeCartes implements ICTas {

	protected PTasDeCartes presentation;

	public PTasDeCartes getPresentation() {
		return presentation;
	}

	public void setPresentation(PTasDeCartes presentation) {
		this.presentation = presentation;
	}
	
	/**
	 * construction d'un tas de cartes
	 * @param nom
	 * @param usine
	 */
	public CTasDeCartes(String nom, CUsine usine){
		super(nom,usine);
		presentation=new PTasDeCartes(this);
	}
	
	@Override
	public void empiler(Carte carte) {
		super.empiler(carte);
		empiler((ICCarte) carte);
	}
	
	@Override
	public void depiler() throws java.lang.Exception{
		presentation.depiler();
		super.depiler();
	}

	public void empiler(ICCarte carte) {
			presentation.empiler((PCarte)carte.getPresentation());
	}
	
	public boolean isEmpilable(ICCarte carte) {
		return isEmpilable((Carte) carte);
	}

	public boolean isEmpilable(ICTas tas) {
		return isEmpilable((Tas)tas);
	}

	public boolean isEmpilable(ICTas tas, int nbCartes) {
		return isEmpilable((Tas)tas, nbCartes);
	}

}
